package com.wr.utils;

import java.io.IOException;

import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * 实体类和JSON对象之间相互转化
 */
public class JSONUtil {
    /**
     * 将json转换为实体POJO
     * @param jsonStr 需要转换的json串
     * @param obj     需要转换成为的对象类型
     * @return 返回转换后的对象
     */
    public static <T> Object JSONToObj(String jsonStr, Class<T> obj) {
        T t = null;
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            t = objectMapper.readValue(jsonStr,obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }

    /**
     * 将实体POJO转化为JSON
     * @param obj 需要转换的对象
     * @return 返回转换后的json对象
     * @throws JSONException json异常
     * @throws IOException   io异常
     */
    public static <T> JSONObject objectToJson(T obj) throws JSONException, IOException {
        ObjectMapper mapper = new ObjectMapper();
        // Convert object to JSON string
        String jsonStr;
        jsonStr = mapper.writeValueAsString(obj);
        return new JSONObject(jsonStr);
    }
}